Data conventionally has been sent though networks via unicast. Unicast sends information packets to a single destination, for example, by sending the same packets individually to each receiver. A problem with unicast relates to potentially redundant transmissions which may, for example, strain the network. This problem is illustrated in FIG. 1A, which is an exemplary diagram of a unicast transmission. FIG. 1A shows nodes 102a-d in network 100. Originating node 102a sends messages 104a-h through a plurality of nodes in the network to appropriate receivers (not shown). For illustrative purposes, messages 104a-h are all the same. Node 102b receives all of messages 104a-h, and relays two messages (104g-h) to their respective receivers. Now, node 102b sends messages 104a-f to node 102c. Node 102c receives messages 104a-f, and relays two messages (104e-f) to their respective receivers. This process continues to node 102d, which receives messages 104a-d and relays the messages accordingly. The entire unicast in this example is wasteful of bandwidth, a precious commodity in networks, because it relays the same message multiple times through many nodes.
One solution to this problem is multicast. Multicast involves the delivery of information to a group of destinations simultaneously using the most efficient strategy to deliver the messages over each link of the network only once, and only creates copies when the links to the destinations split. Thus, multicast nodes are configured to, when appropriate, duplicate messages for each receiver and transmit accordingly. FIG. 1B is an exemplary diagram of a multicast transmission. FIG. 1B shows nodes 106a-d in network 100′. Originating node 106a sends a single message 108 through a plurality of nodes in the network to appropriate receivers (not shown) by duplicating the message when necessary. Thus, node 106b receives message 108, duplicates it, and relays messages 108a-b (which are duplicates of message 108) to their respective receivers. Node 106b also relays message 108 to node 106c, where the process is continued. Thus, multicast potentially represents an improvement of unicast. One example of a multicast standard is the IETF RMT multicast standard, which may operate with a network architecture, for example, Internet Protocol, also as defined by IETF standards. It will be appreciated that there are numerous other multicast standards and network architectures, that this is only one example thereof, and that others may be used alone or in combination with certain embodiments.
However, multicast schemes also suffer drawbacks. For example, because multicast is uniform throughout nodes in a network, networks with receivers of different pipe widths may have trouble receiving data. Specifically, low-capacity receivers may experience blockage and/or data corruption (e.g. bit loss, etc.). An inherent feature in conventional multicast, then, is that the final state space results in either successful or unsuccessful transmissions; that is, typically, there are no partial successes.
Thus, it will be appreciated that there is a need in the art to overcome one or more of these and other disadvantages to, for example, more efficiently and accurately transfer data through a network.